package com.adcc.ags.gms.user.service;

import com.adcc.ags.gms.user.entity.BlackList;
import com.adcc.ags.gms.user.vo.BlackListVO;
import com.github.pagehelper.PageInfo;
import com.google.common.base.Optional;
import org.dom4j.Document;

/**
 * Created by zhangpeng on 2016/8/16.
 */
public interface BlackListService {

    /**
     * 根据黑名单用户所属用户ID查找
     * @param gwUserId
     * @return
     */
    public Optional<Boolean> findByGWUserId(Long gwUserId);

    /**
     * 根据黑名单自身ID查找
     * @param id
     * @return
     */
    public BlackList findById(Long id);

    /**
     * 根据页面查询条件查找
     * @param gwUserId
     * @return
     */
    public Optional<PageInfo<BlackList>> findAllBlackListByCondition(long gwUserId,int curPage,int pageSize);

    /**
     * 黑名单用户新增
     * @param blackListVO
     * @return
     */
    public Optional<Boolean> addBlackList(BlackListVO blackListVO);

    /**
     * 黑名单用户修改
     * @param blackListVO
     * @return
     */
    public Optional<Boolean> updateBlackList(BlackListVO blackListVO);

    /**
     * 黑名单用户删除
     * @param id
     * @return
     */
    public Optional<Boolean> deleteBlackList(Long id);

    /**
     * 推送黑名单用户配置到CGW
     * @return
     */
    public Optional<Boolean> updateBlackListConf();

    /**
     * 创建黑名单用户列表
     * @return
     */
    public Document createBlackList();

}
